package awk.etl.scripts;

import awk.etl.dataset.DataSetExecute;
import awk.etl.function.register.FunctionExecute;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 执行用户自定义代码块所需的内置函数
 * 可以直接在代码块中引用这些函数
 */
public class ScriptBase {

    /**
     * 获取数据集中的数据。
     * 使用方式，用户在前端直接使用 #getDsData() 方式即可
     *
     * @param dataSetId 数据集id
     * @param params    动态参数。ETL中的动态参数向下传递给 dsl
     * @return
     */
    public static List<Map<String, Object>> executeDs(String dataSetId, Map<String, Object> params) {
        return DataSetExecute.getDataSet(dataSetId, params);
    }

    /**
     * 对某些数据集用内置函数进行数据加工。
     *
     * @param functionName 函数名, namespace:functionName
     * @param dataSets     数据
     * @return
     */
    public static Object executeFun(String functionName, List<Map<String, Object>>... dataSets) {
        return FunctionExecute.executionFunction(functionName, dataSets);
    }
}
